/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * LedenInvoerScherm.java
 *
 * Created on 1-jan-2010, 19:41:47
 */

package registratiesysteem;

import java.awt.Color;
import java.util.ArrayList;

/**
 *
 * @author Martin
 */
class LedenInvoerScherm extends javax.swing.JFrame {

    static final int LIDNR = 0;
    static final int AANHEF = 1;
    static final int VOORLETTERS = 2;
    static final int TUSSENVOEGSEL = 3;
    static final int NAAM = 4;
    static final int STRAAT = 5;
    static final int HUISNR = 6;
    static final int HUISNRTOEVOEGING = 7;
    static final int POSTCODE = 8;
    static final int PLAATS = 9;
    static final int EMAILADRES = 10;
    static final int TELNR = 11;
    static final int INSCHRIJFDATUM = 12;

    // Overload van de constructor die een verwijzing meekrijgt naar het
    // beheer menu en het zoekscherm zodat deze schermen geopend kunnen worden
    // vanuit dit scherm.
    LedenInvoerScherm(BeheerMenu hetParentMenu) {
        parentMenu = hetParentMenu;
        initComponents();
        jcbAanhef.addItem(null);
        jcbAanhef.addItem("Dhr.");
        jcbAanhef.addItem("Mevr.");
        parentMenu.initDatumVelden(jcbDag, jcbMaand, jcbJaar);
    }

    /* Initialiseer het invoerscherm indien deze wordt aangeroepen vanuit het
    beheermenu en bepaal op basis van de bewerking die men wil uitvoeren welke
    velden geactiveerd moeten worden en welke tekst er gebruikt wordt, maak
    tevens alle invoervelden leeg. */
    void initialiseerInvoerScherm(BeheerMenu.BewerkFunctie hetSoortBewerking) {
        soortBewerking = hetSoortBewerking;
        switch(soortBewerking) {
            case TOEVOEGEN:
                // Haal het hoogste lidnummer op uit de database, verhoog deze
                // met 1, vul het aantal karakters aan tot 4 en vul deze in
                // in het veld Lidnummer.
                jTextLidnummer.setText(parentMenu.lidNummerUitvullen(geefMaximumLidNummer()+1));
                jLabelSchermTitel.setText("Lid toevoegen");
                jTextLidnummer.setEnabled(false);
                jcbAanhef.setEnabled(true);
                invoerVeldenLeeg();
                jLabelVoornaam.setText("Voorletters*");
                jLabelAchternaam.setText("Naam*");
                jLabelStraat.setText("Straat*");
                jLabelHuisnummer.setText("Huisnummer*");
                jLabelPostcode.setText("Postcode*");
                jLabelPlaats.setText("Plaats*");
                jLabelTelefoonnummer.setText("Telefoonnummer*");
                jLabelDatumStartLidmaatschap.setText("Inschrijfdatum*");
                jButtonOpslaanVerwijderen.setText("Opslaan");
                parentMenu.setStatusbarText(jlStatusbar, "Velden met een * zijn verplicht.", Color.BLACK);
                break;
            case WIJZIGEN:
            case VERWIJDEREN:
            case ZOEKEN:
                jLabelSchermTitel.setText("Lid zoeken");
                jTextLidnummer.setEnabled(true);
                jTextLidnummer.setText("");
                jcbAanhef.setEnabled(true);
                invoerVeldenLeeg();
                jLabelVoornaam.setText("Voorletters");
                jLabelAchternaam.setText("Naam");
                jLabelStraat.setText("Straat");
                jLabelHuisnummer.setText("Huisnummer");
                jLabelPostcode.setText("Postcode");
                jLabelPlaats.setText("Plaats");
                jLabelTelefoonnummer.setText("Telefoonnummer");
                jLabelDatumStartLidmaatschap.setText("Inschrijfdatum");
                jButtonOpslaanVerwijderen.setText("Zoeken");
                parentMenu.setStatusbarText(jlStatusbar, "Geef een of meerdere zoekcriteria op. " +
                        "Geef geen zoekcriteria op om alle leden weer te geven.", Color.BLACK);
        }
    }

    /* Initialiseer het invoerscherm indien deze wordt aangeroepen vanuit het
    zoekscherm en bepaal op basis van de bewerking die men wil uitvoeren welke
    velden geactiveerd moeten worden en welke tekst er gebruikt wordt, vul
    tevens alle invoervelden met de gegevens van het betreffende lid. */
    void initialiseerInvoerScherm(BeheerMenu.BewerkFunctie hetSoortBewerking, int hetLidNummer) {
        soortBewerking = hetSoortBewerking;
        switch(soortBewerking) {
            case WIJZIGEN:
                jLabelSchermTitel.setText("Lid wijzigen");
                invoerVeldenVullen(hetLidNummer);
                jTextLidnummer.setEnabled(false);
                jcbAanhef.setEnabled(true);
                jTextVoornaam.setEnabled(true);
                jTextTussenvoegsel.setEnabled(true);
                jTextAchternaam.setEnabled(true);
                jTextStraat.setEnabled(true);
                jTextHuisnummer.setEnabled(true);
                jTextToevoeging.setEnabled(true);
                jTextPostcode.setEnabled(true);
                jTextPlaats.setEnabled(true);
                jTextEmail.setEnabled(true);
                jTextTelefoonnummer.setEnabled(true);
                jcbDag.setEnabled(true);
                jcbMaand.setEnabled(true);
                jcbJaar.setEnabled(true);
                jLabelVoornaam.setText("Voorletters*");
                jLabelAchternaam.setText("Naam*");
                jLabelStraat.setText("Straat*");
                jLabelHuisnummer.setText("Huisnummer*");
                jLabelPostcode.setText("Postcode*");
                jLabelPlaats.setText("Plaats*");
                jLabelTelefoonnummer.setText("Telefoonnummer*");
                jLabelDatumStartLidmaatschap.setText("Inschrijfdatum*");
                jButtonOpslaanVerwijderen.setText("Opslaan");
                parentMenu.setStatusbarText(jlStatusbar, "Wijzig een of meer velden en klik op " +
                        "Opslaan, velden met een * zijn verplicht.", Color.BLACK);
                break;
            case VERWIJDEREN:
                jLabelSchermTitel.setText("Lid verwijderen");
                invoerVeldenVullen(hetLidNummer);
                jTextLidnummer.setEnabled(false);
                jcbAanhef.setEnabled(false);
                jTextVoornaam.setEnabled(false);
                jTextTussenvoegsel.setEnabled(false);
                jTextAchternaam.setEnabled(false);
                jTextStraat.setEnabled(false);
                jTextHuisnummer.setEnabled(false);
                jTextToevoeging.setEnabled(false);
                jTextPostcode.setEnabled(false);
                jTextPlaats.setEnabled(false);
                jTextEmail.setEnabled(false);
                jTextTelefoonnummer.setEnabled(false);
                jcbDag.setEnabled(false);
                jcbMaand.setEnabled(false);
                jcbJaar.setEnabled(false);
                jLabelVoornaam.setText("Voorletters");
                jLabelAchternaam.setText("Naam");
                jLabelStraat.setText("Straat");
                jLabelHuisnummer.setText("Huisnummer");
                jLabelPostcode.setText("Postcode");
                jLabelPlaats.setText("Plaats");
                jLabelTelefoonnummer.setText("Telefoonnummer");
                jLabelDatumStartLidmaatschap.setText("Inschrijfdatum");
                jButtonOpslaanVerwijderen.setText("Verwijderen");
                parentMenu.setStatusbarText(jlStatusbar, "Klik op Verwijderen om het lid te " +
                        "verwijderen.", Color.BLACK);
                break;
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLabelSchermTitel = new javax.swing.JLabel();
        jlStatusbar = new javax.swing.JLabel();
        jButtonAnnuleren = new javax.swing.JButton();
        jButtonOpslaanVerwijderen = new javax.swing.JButton();
        jTextVoornaam = new javax.swing.JTextField();
        jcbMaand = new javax.swing.JComboBox();
        jcbDag = new javax.swing.JComboBox();
        jLabelDatumStartLidmaatschap = new javax.swing.JLabel();
        jLabelLidnummer = new javax.swing.JLabel();
        jLabelVoornaam = new javax.swing.JLabel();
        jcbJaar = new javax.swing.JComboBox();
        jTextLidnummer = new javax.swing.JTextField();
        jLabelTussenvoegsel = new javax.swing.JLabel();
        jTextTussenvoegsel = new javax.swing.JTextField();
        jLabelAchternaam = new javax.swing.JLabel();
        jTextAchternaam = new javax.swing.JTextField();
        jLabelStraat = new javax.swing.JLabel();
        jLabelHuisnummer = new javax.swing.JLabel();
        jLabelToevoeging = new javax.swing.JLabel();
        jTextToevoeging = new javax.swing.JTextField();
        jTextHuisnummer = new javax.swing.JTextField();
        jTextStraat = new javax.swing.JTextField();
        jLabelPostcode = new javax.swing.JLabel();
        jTextPostcode = new javax.swing.JTextField();
        jLabelPlaats = new javax.swing.JLabel();
        jTextPlaats = new javax.swing.JTextField();
        jLabelEmail = new javax.swing.JLabel();
        jTextEmail = new javax.swing.JTextField();
        jLabelTelefoonnummer = new javax.swing.JLabel();
        jTextTelefoonnummer = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jcbAanhef = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabelSchermTitel.setFont(new java.awt.Font("Tahoma", 1, 24));
        jLabelSchermTitel.setText("Leden");

        jlStatusbar.setText("Statusbar");
        jlStatusbar.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jButtonAnnuleren.setText("Annuleren");
        jButtonAnnuleren.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAnnulerenActionPerformed(evt);
            }
        });

        jButtonOpslaanVerwijderen.setText("Opslaan");
        jButtonOpslaanVerwijderen.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonOpslaanVerwijderenActionPerformed(evt);
            }
        });

        jcbMaand.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcbMaandActionPerformed(evt);
            }
        });

        jLabelDatumStartLidmaatschap.setText("Datum start lidmaatschap");

        jLabelLidnummer.setText("Lidnummer");

        jLabelVoornaam.setText("Voorletters");

        jcbJaar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcbJaarActionPerformed(evt);
            }
        });

        jTextLidnummer.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jTextLidnummer.setText("0000");
        jTextLidnummer.setEnabled(false);

        jLabelTussenvoegsel.setText("Tussenvoegsel");

        jLabelAchternaam.setText("Naam");

        jLabelStraat.setText("Straat");

        jLabelHuisnummer.setText("Huisnummer");

        jLabelToevoeging.setText("Toevoeging");

        jLabelPostcode.setText("Postcode");

        jLabelPlaats.setText("Plaats");

        jLabelEmail.setText("E-mailadres");

        jLabelTelefoonnummer.setText("Telefoonnummer");

        jLabel1.setText("Aanhef");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabelEmail)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextEmail, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabelTelefoonnummer)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextTelefoonnummer, javax.swing.GroupLayout.DEFAULT_SIZE, 185, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabelStraat)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextStraat, javax.swing.GroupLayout.PREFERRED_SIZE, 271, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                        .addComponent(jLabelLidnummer)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextLidnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jLabel1))
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                        .addComponent(jLabelVoornaam)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextVoornaam, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(jLabelTussenvoegsel)
                                        .addGap(4, 4, 4)
                                        .addComponent(jTextTussenvoegsel, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jcbAanhef, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabelAchternaam)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextAchternaam, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(6, 6, 6)
                                .addComponent(jLabelHuisnummer)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextHuisnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
                                .addComponent(jLabelToevoeging)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextToevoeging, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabelPostcode)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextPostcode, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabelPlaats)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextPlaats, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabelDatumStartLidmaatschap)
                        .addGap(4, 4, 4)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jButtonOpslaanVerwijderen, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButtonAnnuleren, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jcbDag, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jcbMaand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jcbJaar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                .addContainerGap())
            .addComponent(jlStatusbar, javax.swing.GroupLayout.DEFAULT_SIZE, 612, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addGap(249, 249, 249)
                .addComponent(jLabelSchermTitel)
                .addContainerGap(291, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabelSchermTitel)
                .addGap(11, 11, 11)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelLidnummer)
                    .addComponent(jTextLidnummer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1)
                    .addComponent(jcbAanhef, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelVoornaam)
                    .addComponent(jTextVoornaam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTussenvoegsel)
                    .addComponent(jTextTussenvoegsel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelAchternaam)
                    .addComponent(jTextAchternaam, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelStraat)
                    .addComponent(jTextStraat, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextToevoeging, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelToevoeging)
                    .addComponent(jTextHuisnummer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelHuisnummer))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelPostcode)
                    .addComponent(jTextPostcode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelPlaats)
                    .addComponent(jTextPlaats, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelEmail)
                    .addComponent(jTextEmail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabelTelefoonnummer)
                    .addComponent(jTextTelefoonnummer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabelDatumStartLidmaatschap)
                    .addComponent(jcbDag, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jcbMaand, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jcbJaar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(30, 30, 30)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonOpslaanVerwijderen)
                    .addComponent(jButtonAnnuleren))
                .addGap(18, 18, 18)
                .addComponent(jlStatusbar, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonAnnulerenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAnnulerenActionPerformed
        this.setVisible(false);
        parentMenu.setVisible(true);
}//GEN-LAST:event_jButtonAnnulerenActionPerformed

    private void jButtonOpslaanVerwijderenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOpslaanVerwijderenActionPerformed
        // In deze array worden leden opgeslagen die voldoen aan de
        // zoekcriteria.
        ArrayList<ArrayList<String>> deLeden = new ArrayList();

        // Als dit een zoekscherm is zoek dan naar leden in de database.
        if (jButtonOpslaanVerwijderen.getText().equals("Zoeken")) {

            // Op basis van de ingevulde velden wordt een zoekstring
            // gegenereerd die wordt doorgegeven aan de database.
            String zoekString = "";

            // Als het lidnummer is ingevuld en alleen bestaat uit cijfers
            if (!jTextLidnummer.getText().isEmpty()) {
                if (parentMenu.isTekstNumeriek(jTextLidnummer.getText())) {
                    zoekString = zoekString + "lidnr = \"" + jTextLidnummer.getText() + "\"";
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Het lidnummer mag alleen bestaan " +
                            "uit cijfers, voer een nieuw lidnummer in.", Color.RED);
                    return;
                }
            }


            // Als de aanhef opgegeven is
            if (jcbAanhef.getItemAt(jcbAanhef.getSelectedIndex()) != null)
                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "aanhef = \"" + jcbAanhef.getItemAt(jcbAanhef.getSelectedIndex()) + "\"";
                } else {
                    zoekString = zoekString + " AND aanhef = \"" + jcbAanhef.getItemAt(jcbAanhef.getSelectedIndex()) + "\"";
                }

            // Als de voornaam is ingevuld en geen cijfers bevat
            if (!jTextVoornaam.getText().isEmpty()) {
                if (!parentMenu.bevatTekstNummers(jTextVoornaam.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "voorletters like \"" + jTextVoornaam.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND voorletters like \"" + jTextVoornaam.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een voornaam mag geen cijfers " +
                            "bevatten, voer een nieuwe voornaam in.", Color.RED);
                    return;
                }
            }

            // Als het tussenvoegsel is ingevuld en geen cijfers bevat
            if (!jTextTussenvoegsel.getText().isEmpty()) {
                if (!parentMenu.bevatTekstNummers(jTextTussenvoegsel.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "tussenvoegsel like \"" + jTextTussenvoegsel.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND tussenvoegsel like \"" + jTextTussenvoegsel.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een tussenvoegsel mag geen cijfers " +
                            "bevatten, voer een nieuw tussenvoegsel in.", Color.RED);
                    return;
                }
            }

            // Als de achternaam is ingevuld en geen cijfers bevat
            if (!jTextAchternaam.getText().isEmpty()) {
                if (!parentMenu.bevatTekstNummers(jTextAchternaam.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "naam like \"" + jTextAchternaam.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND naam like \"" + jTextAchternaam.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een achternaam mag geen cijfers " +
                            "bevatten, voer een nieuwe achternaam in.", Color.RED);
                    return;
                }
            }

            // Als de straat is ingevuld en geen cijfers bevat
            if (!jTextStraat.getText().isEmpty()) {
                if (!parentMenu.bevatTekstNummers(jTextStraat.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "straat like \"" + jTextStraat.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND straat like \"" + jTextStraat.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een straatnaam mag geen cijfers " +
                            "bevatten, voer een nieuwe straatnaam in.", Color.RED);
                    return;
                }
            }

            // Als het huisnummer is ingevuld en alleen bestaat uit cijfers
            if (!jTextHuisnummer.getText().isEmpty()) {
                if (parentMenu.isTekstNumeriek(jTextHuisnummer.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "huisnr like \"" + jTextHuisnummer.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND huisnr like \"" + jTextHuisnummer.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een huisnummer mag alleen bestaan " +
                            "uit cijfers, voer een nieuw huisnummer in.", Color.RED);
                    return;
                }
            }

            // Als de huisnummer toevoeging is ingevuld
            if (!jTextToevoeging.getText().isEmpty()) {
                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "huisnrtoevoeging like \"" + jTextToevoeging.getText() + "%\"";
                } else {
                    zoekString = zoekString + " AND huisnrtoevoeging like \"" + jTextToevoeging.getText() + "%\"";
                }
            }

            // Als de postcode is ingevuld is
            if (!jTextPostcode.getText().isEmpty()) {
                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "postcode like \"" + jTextPostcode.getText() + "%\"";
                } else {
                    zoekString = zoekString + " AND postcode like \"" + jTextPostcode.getText() + "%\"";
                }
            }

            // Als de plaats is ingevuld en geen cijfers bevat
            if (!jTextPlaats.getText().isEmpty()) {
                if (!parentMenu.bevatTekstNummers(jTextPlaats.getText())) {
                    if (zoekString.isEmpty()) {
                        zoekString = zoekString + "plaats like \"" + jTextPlaats.getText() + "%\"";
                    } else {
                        zoekString = zoekString + " AND plaats like \"" + jTextPlaats.getText() + "%\"";
                    }
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Een plaatsnaam mag geen cijfers " +
                            "bevatten, voer een nieuwe plaatsnaam in.", Color.RED);
                    return;
                }
            }

            // Als het emailadres is ingevuld
            if (!jTextEmail.getText().isEmpty()) {
                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "emailadres like \"" + jTextEmail.getText() + "%\"";
                } else {
                    zoekString = zoekString + " AND emailadres like \"" + jTextEmail.getText() + "%\"";
                }
            }

            // Als het telefoonnummer is ingevuld
            if (!jTextTelefoonnummer.getText().isEmpty()) {
                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "telnr like \"" + jTextTelefoonnummer.getText() + "%\"";
                } else {
                    zoekString = zoekString + " AND telnr like \"" + jTextTelefoonnummer.getText() + "%\"";
                }
            }
            // Lees de datum uit om op te zoeken
            if (jcbJaar.getSelectedIndex() > 0 && jcbMaand.getSelectedIndex() > 0 && jcbDag.getSelectedIndex() > 0) {
                String datumString = jcbJaar.getSelectedItem() + "-" + jcbMaand.getSelectedIndex() + "-" + jcbDag.getSelectedItem();
                System.out.println(datumString);

                if (zoekString.isEmpty()) {
                    zoekString = zoekString + "inschrijfdatum = \"" + datumString + "\"";
                } else {
                    zoekString = zoekString + " AND inschrijfdatum = \"" + datumString + "\"";
                }
            }

            // Voer de zoekopdracht uit als alle velden correct zijn ingevuld
                String deZoekString;
                // Stel de zoekstring samen.
                // Als er geen zoekcriteria zijn opgegeven worden alle
                // lidgegevens weergegeven.
                if (zoekString.isEmpty()) {
                    deZoekString = "SELECT * FROM lid";
                } else {
                    // Als er wel zoekcriteria zijn opgegeven wordt er
                    // gezocht met deze zoekcriteria
                    deZoekString = "SELECT * FROM lid WHERE "
                            + zoekString + " ORDER BY lidnr";
                }

                // Geef de zoekstring door aan de databaseconnectie, en haal de resultaten op.
                parentMenu.databaseConnectie.prepareStatement(deZoekString);
                deLeden = parentMenu.databaseConnectie.query();

                // Controleer of er leden zijn gevonden die voldoen aan de
                // zoekcriteria.
                if (deLeden != null && deLeden.size() > 0) {
                    parentMenu.zoekResultaten.initialiseerZoekScherm(this, soortBewerking, deLeden);
                    parentMenu.zoekResultaten.setLocationRelativeTo(null);
                    parentMenu.zoekResultaten.setVisible(true);
                    this.setVisible(false);
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Er is geen lid gevonden dat voldoet aan de " +
                            "zoekcriteria, geef andere criteria op.", Color.RED);
                }
        }
        // Als dit een invoer of wijzigingsscherm is, sla dan het betreffende
        // lid op in de database.
        else if (jButtonOpslaanVerwijderen.getText().equals("Opslaan")) {
            // Voer diverse controles uit op alle velden.

            // Controleer of alle verplichte velden zijn ingevuld
            if (jTextVoornaam.getText().isEmpty()
                    || jTextAchternaam.getText().isEmpty()
                    || jTextStraat.getText().isEmpty()
                    || jTextHuisnummer.getText().isEmpty()
                    || jTextPostcode.getText().isEmpty()
                    || jTextPlaats.getText().isEmpty()
                    || jTextTelefoonnummer.getText().isEmpty()
                    || jcbDag.getSelectedIndex() == 0
                    || jcbMaand.getSelectedIndex() == 0
                    || jcbJaar.getSelectedIndex() == 0) {
                parentMenu.setStatusbarText(jlStatusbar, "Niet alle verplichte velden zijn " +
                        "ingevuld.", Color.RED);
                return;
            } else {
                // Controleer is het ingevulde huisnummer numeriek is.
                if (parentMenu.isTekstNumeriek(jTextHuisnummer.getText())) {
                    hetLid.setHuisnr(Integer.parseInt(jTextHuisnummer.getText().trim()));
                } else {
                    parentMenu.setStatusbarText(jlStatusbar, "Het huisnummer moet numeriek zijn, " +
                            "voer een nieuw huisnummer in.", Color.RED);
                    return;
                }
            }
            
            // Controleer of bepaalde velden alleen tekst bevatten
            if (parentMenu.bevatTekstNummers(jTextVoornaam.getText()) ||
                parentMenu.bevatTekstNummers(jTextTussenvoegsel.getText()) ||
                parentMenu.bevatTekstNummers(jTextAchternaam.getText()) ||
                parentMenu.bevatTekstNummers(jTextStraat.getText()) ||
                parentMenu.bevatTekstNummers(jTextPlaats.getText())) {
                parentMenu.setStatusbarText(jlStatusbar, "Voornamen, tussenvoegsels, " +
                        "achternamen, straatnamen en plaatsnamen mogen geen " +
                        "cijfers bevatten.", Color.RED);
                return;
            }

            // Controleer of de postcode geldig is
            String dePostcode = parentMenu.isGeldigePostcode(jTextPostcode.getText());
            if (dePostcode.length() == 6) {
                jTextPostcode.setText(dePostcode);
            } else {
                parentMenu.setStatusbarText(jlStatusbar, dePostcode, Color.RED);
                return;
            }

            String datumString = parentMenu.maakDatumString(jcbDag, jcbMaand, jcbJaar);
            if (datumString == null) {
                parentMenu.setStatusbarText(jlStatusbar, "De inschrijfdatum is niet geldig", Color.RED);
            }

            // Controleer of het telefoonnummer geldig is
            String hetTelefoonnummer = parentMenu.isGeldigTelefoonnummer(jTextTelefoonnummer.getText());
            if (hetTelefoonnummer.length() == 10) {
                jTextTelefoonnummer.setText(hetTelefoonnummer);
            } else {
                parentMenu.setStatusbarText(jlStatusbar, hetTelefoonnummer, Color.RED);
                return;
            }
            
            // Sla de gegevens op in de database indien alle velden correct
            // zijn ingevuld.
            hetLid.setLidnr(Integer.parseInt(jTextLidnummer.getText()));
            hetLid.setAanhef((String)jcbAanhef.getSelectedItem());
            hetLid.setVoorletters(jTextVoornaam.getText());
            hetLid.setTussenvoegsel(jTextTussenvoegsel.getText());
            hetLid.setNaam(jTextAchternaam.getText());
            hetLid.setStraat(jTextStraat.getText());
            hetLid.setHuisnr(Integer.parseInt(jTextHuisnummer.getText()));
            hetLid.setHuisnrtoevoeging(jTextToevoeging.getText());
            hetLid.setPostcode(jTextPostcode.getText());
            hetLid.setPlaats(jTextPlaats.getText());
            hetLid.setEmailadres(jTextEmail.getText());
            hetLid.setTelnr(jTextTelefoonnummer.getText());
            hetLid.setInschrijfdatum(datumString);

            // Op basis van de soort bewerking wordt een lid aan de
            // database toegevoegd of wordt een lid in de database
            // gewijzigd.
            switch(soortBewerking) {
                case TOEVOEGEN:
                    if (insertLid(hetLid) != -1)
                        parentMenu.setStatusbarText(parentMenu.jlStatusbar, "Lid is aangemaakt", Color.BLACK);
                    break;
                case WIJZIGEN:
                    if (wijzigLid(hetLid) != -1)
                        parentMenu.setStatusbarText(parentMenu.jlStatusbar, "Lid is gewijzigd", Color.BLACK);
                    break;
            }
            this.setVisible(false);
            parentMenu.setVisible(true);
            invoerVeldenLeeg();
        }

        // Als dit een verwijderscherm is, dan wordt het lid met het lidnummer
        // zoals dat weergegeven is in het scherm verwijderd uit de database.
        else if (jButtonOpslaanVerwijderen.getText().equals("Verwijderen")) {
            if (verwijderLid(Integer.parseInt(jTextLidnummer.getText())) != -1)
                parentMenu.setStatusbarText(parentMenu.jlStatusbar, "Lid is verwijderd", Color.BLACK);
            else
                parentMenu.setStatusbarText(parentMenu.jlStatusbar, "Lid kan niet verwijderd worden, er zijn nog uitleningen", Color.RED);
            this.setVisible(false);
            parentMenu.setVisible(true);
            invoerVeldenLeeg();
        }
}//GEN-LAST:event_jButtonOpslaanVerwijderenActionPerformed

    private void jcbJaarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbJaarActionPerformed
        parentMenu.setDatumVelden(jcbDag, jcbMaand, jcbJaar);
    }//GEN-LAST:event_jcbJaarActionPerformed

    private void jcbMaandActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbMaandActionPerformed
        parentMenu.setDatumVelden(jcbDag, jcbMaand, jcbJaar);
    }//GEN-LAST:event_jcbMaandActionPerformed

    //Maak alle velden leeg
    private void invoerVeldenLeeg() {
        jTextVoornaam.setEnabled(true);
        jTextVoornaam.setText("");
        jTextTussenvoegsel.setEnabled(true);
        jTextTussenvoegsel.setText("");
        jTextAchternaam.setEnabled(true);
        jTextAchternaam.setText("");
        jTextStraat.setEnabled(true);
        jTextStraat.setText("");
        jTextHuisnummer.setEnabled(true);
        jTextHuisnummer.setText("");
        jTextToevoeging.setEnabled(true);
        jTextToevoeging.setText("");
        jTextPostcode.setEnabled(true);
        jTextPostcode.setText("");
        jTextPlaats.setEnabled(true);
        jTextPlaats.setText("");
        jTextEmail.setEnabled(true);
        jTextEmail.setText("");
        jTextTelefoonnummer.setEnabled(true);
        jTextTelefoonnummer.setText("");
        jcbAanhef.setSelectedIndex(0);
        jcbDag.setEnabled(true);
        jcbMaand.setEnabled(true);
        jcbJaar.setEnabled(true);
        if (soortBewerking == BeheerMenu.BewerkFunctie.TOEVOEGEN)
            parentMenu.setDatumVandaag(jcbDag, jcbMaand, jcbJaar);
        else {
            jcbDag.setSelectedIndex(0);
            jcbMaand.setSelectedIndex(0);
            jcbJaar.setSelectedIndex(0);
        }
    }

    // Vul alle velden met de gegevens van een lid
    private void invoerVeldenVullen(int hetLidNummer) {
        String datum;

        // Haal een lid met een bepaald lidnummer op uit de database en sla
        // deze op in een lid object.
        hetLid = geefLid(hetLidNummer);

        // Vul alle velden van het scherm met de gegeven van het lid.
        jcbAanhef.setSelectedItem(hetLid.getAanhef());
        jTextLidnummer.setText(parentMenu.lidNummerUitvullen(hetLid.getLidnr()));
        jTextVoornaam.setText(hetLid.getVoorletters());
        jTextTussenvoegsel.setText(hetLid.getTussenvoegsel());
        jTextAchternaam.setText(hetLid.getNaam());
        jTextStraat.setText(hetLid.getStraat());
        jTextHuisnummer.setText(Integer.toString(hetLid.getHuisnr()));
        jTextToevoeging.setText(hetLid.getHuisnrtoevoeging());
        jTextPostcode.setText(hetLid.getPostcode());
        jTextPlaats.setText(hetLid.getPlaats());
        jTextEmail.setText(hetLid.getEmailadres());
        jTextTelefoonnummer.setText(hetLid.getTelnr());

        // Haal de dag, maand en jaar gegevens uit de datumstring en gebruik dit
        // om de comboboxen in te stellen.
        datum = hetLid.getInschrijfdatum();

        jcbJaar.setSelectedItem(datum.substring(0, 4));
        jcbMaand.setSelectedIndex(Integer.parseInt(datum.substring(5, 7)));
        jcbDag.setSelectedIndex(Integer.parseInt(datum.substring(8, 10)));
    }

    // Een lid toevoegen aan de database
    private int insertLid(Lid eenLid) {
        parentMenu.databaseConnectie.prepareStatement("INSERT INTO lid "
            + "(lidnr, aanhef, voorletters, tussenvoegsel, naam, "
            + "straat, huisnr, huisnrtoevoeging, postcode, "
            + "plaats, emailadres, telnr, "
            + "inschrijfdatum)"
            + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        parentMenu.databaseConnectie.setInt(1,eenLid.getLidnr());
        parentMenu.databaseConnectie.setString(2,eenLid.getAanhef());
        parentMenu.databaseConnectie.setString(3,eenLid.getVoorletters());
        parentMenu.databaseConnectie.setString(4,eenLid.getTussenvoegsel());
        parentMenu.databaseConnectie.setString(5,eenLid.getNaam());
        parentMenu.databaseConnectie.setString(6,eenLid.getStraat());
        parentMenu.databaseConnectie.setInt(7,eenLid.getHuisnr());
        parentMenu.databaseConnectie.setString(8,eenLid.getHuisnrtoevoeging());
        parentMenu.databaseConnectie.setString(9,eenLid.getPostcode());
        parentMenu.databaseConnectie.setString(10,eenLid.getPlaats());
        parentMenu.databaseConnectie.setString(11,eenLid.getEmailadres());
        parentMenu.databaseConnectie.setString(12,eenLid.getTelnr());
        parentMenu.databaseConnectie.setString(13,eenLid.getInschrijfdatum());
        return parentMenu.databaseConnectie.update();
    }

    // Een lid wijzigen in de database
    private int wijzigLid(Lid eenLid) {
        parentMenu.databaseConnectie.prepareStatement("UPDATE lid SET " +
            "aanhef = ?, voorletters = ?, tussenvoegsel = ?, naam = ?,  " +
            "straat = ?, huisnr = ?, huisnrtoevoeging = ?, " +
            "postcode = ?, plaats = ?, emailadres = ?, " +
            "telnr = ?, inschrijfdatum = ? " +
            "WHERE lidnr = ?;");
        parentMenu.databaseConnectie.setString(1,eenLid.getAanhef());
        parentMenu.databaseConnectie.setString(2,eenLid.getVoorletters());
        parentMenu.databaseConnectie.setString(3,eenLid.getTussenvoegsel());
        parentMenu.databaseConnectie.setString(4,eenLid.getNaam());
        parentMenu.databaseConnectie.setString(5,eenLid.getStraat());
        parentMenu.databaseConnectie.setInt(6,eenLid.getHuisnr());
        parentMenu.databaseConnectie.setString(7,eenLid.getHuisnrtoevoeging());
        parentMenu.databaseConnectie.setString(8,eenLid.getPostcode());
        parentMenu.databaseConnectie.setString(9,eenLid.getPlaats());
        parentMenu.databaseConnectie.setString(10,eenLid.getEmailadres());
        parentMenu.databaseConnectie.setString(11,eenLid.getTelnr());
        parentMenu.databaseConnectie.setString(12,eenLid.getInschrijfdatum());
        parentMenu.databaseConnectie.setInt(13,eenLid.getLidnr());
        return parentMenu.databaseConnectie.update();
    }

    // Een lid verwijderen uit de database
    private int verwijderLid(int lidNummer) {
        parentMenu.databaseConnectie.prepareStatement("DELETE FROM lid " +
            "WHERE lidnr = ?;");
        parentMenu.databaseConnectie.setInt(1,lidNummer);
        return parentMenu.databaseConnectie.update();
    }

    // Zoek naar het hoogste lidnummer in de database
    private int geefMaximumLidNummer() {
    ArrayList<ArrayList<String>> resultaat;
    int hetLidnummer = 0, maxLidnummer = 0;

    parentMenu.databaseConnectie.prepareStatement("SELECT lidnr FROM lid");
    resultaat = parentMenu.databaseConnectie.query();
    if (resultaat != null) {
        for (ArrayList<String> s : resultaat) {
            hetLidnummer = Integer.parseInt(s.get(LIDNR));
            if (hetLidnummer > maxLidnummer) {
                maxLidnummer = hetLidnummer;
            }
        }
    }
    return maxLidnummer;
    }

    // Selecteer een lid in de database
    private Lid geefLid(int hetLidnummer) {
        Lid eenLid = new Lid();
        ArrayList<ArrayList<String>> resultaat;
        parentMenu.databaseConnectie.prepareStatement("SELECT * "
            + "FROM lid WHERE lidnr = ?");
        parentMenu.databaseConnectie.setInt(1, hetLidnummer);
        resultaat = parentMenu.databaseConnectie.query();
        for (ArrayList<String> s : resultaat) {
            eenLid.setLidnr(Integer.parseInt(s.get(LIDNR)));
            eenLid.setAanhef(s.get(AANHEF));
            eenLid.setVoorletters(s.get(VOORLETTERS));
            eenLid.setTussenvoegsel(s.get(TUSSENVOEGSEL));
            eenLid.setNaam(s.get(NAAM));
            eenLid.setStraat(s.get(STRAAT));
            eenLid.setHuisnr(Integer.parseInt(s.get(HUISNR)));
            eenLid.setHuisnrtoevoeging(s.get(HUISNRTOEVOEGING));
            eenLid.setPostcode(s.get(POSTCODE));
            eenLid.setPlaats(s.get(PLAATS));
            eenLid.setEmailadres(s.get(EMAILADRES));
            eenLid.setTelnr(s.get(TELNR));
            eenLid.setInschrijfdatum(s.get(INSCHRIJFDATUM));
        }
        return eenLid;
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonAnnuleren;
    private javax.swing.JButton jButtonOpslaanVerwijderen;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabelAchternaam;
    private javax.swing.JLabel jLabelDatumStartLidmaatschap;
    private javax.swing.JLabel jLabelEmail;
    private javax.swing.JLabel jLabelHuisnummer;
    private javax.swing.JLabel jLabelLidnummer;
    private javax.swing.JLabel jLabelPlaats;
    private javax.swing.JLabel jLabelPostcode;
    private javax.swing.JLabel jLabelSchermTitel;
    private javax.swing.JLabel jLabelStraat;
    private javax.swing.JLabel jLabelTelefoonnummer;
    private javax.swing.JLabel jLabelToevoeging;
    private javax.swing.JLabel jLabelTussenvoegsel;
    private javax.swing.JLabel jLabelVoornaam;
    private javax.swing.JTextField jTextAchternaam;
    private javax.swing.JTextField jTextEmail;
    private javax.swing.JTextField jTextHuisnummer;
    private javax.swing.JTextField jTextLidnummer;
    private javax.swing.JTextField jTextPlaats;
    private javax.swing.JTextField jTextPostcode;
    private javax.swing.JTextField jTextStraat;
    private javax.swing.JTextField jTextTelefoonnummer;
    private javax.swing.JTextField jTextToevoeging;
    private javax.swing.JTextField jTextTussenvoegsel;
    private javax.swing.JTextField jTextVoornaam;
    private javax.swing.JComboBox jcbAanhef;
    private javax.swing.JComboBox jcbDag;
    private javax.swing.JComboBox jcbJaar;
    private javax.swing.JComboBox jcbMaand;
    private javax.swing.JLabel jlStatusbar;
    // End of variables declaration//GEN-END:variables

    // Hier wordt een verwijzing naar het beheermenu opgenomen zodat we
    // vanuit dit scherm terug kunnen keren naar het beheermenu
    private BeheerMenu parentMenu;

    // Hier wordt de enumeratie opgeslagen die bepaald welke functie wordt
    // uitgevoerd zodra men een object heeft geselecteerd in het zoekscherm.
    private BeheerMenu.BewerkFunctie soortBewerking;

    // Dit lid object wordt gebruikt om de velden te vullen met de gegevens,
    // of om de gegevens uit de velden in op te slaan.
    private Lid hetLid = new Lid();
}
